/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param code string字符串 城市code
 * @return string字符串
 */
let dataInfo = [
  {
    id: '100',
    name: '上海',
    child: [
      {
        id: '101',
        name: '浦东',
        child: []
      }, {
        id: '102',
        name: '浦西',
        child: []
      },
    ]
  },
  {
    id: '200',
    name: '杭州',
    child: [
      {
        id: '201',
        name: '西湖',
        child: [{
          id: '221',
          name: '黄龙时代',
          child: []
        }]
      }, {
        id: '202',
        name: '余杭',
        child: []
      },
    ]
  }
]
function find (code) {
  // write code here
  let map = {}
  function backTracking (data, str) {
    if (str === '') {
      str += data.name
    } else {
      str += (' ' + data.name)
    }
    map[data.id] = str // 首先加入到map中
    if (!data.child || data.child.length === 0) return
    for (let j = 0; j < data.child.length; j++) {
      let item = data.child[j] // 获得这个item
      backTracking(item, str) // 传入这个数据和str
    }
  }
  for (let i = 0; i < dataInfo.length; i++) {
    let data = dataInfo[i] // 获取这个的数据
    backTracking(data, '') // 遍历这个数据 传入一个空字符串
  }
  return map[code] === undefined ? '' : map[code]
}
console.log(find('100').length)
module.exports = {
  find: find
};